package com.yuw.filedemo;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

import org.junit.jupiter.api.Test;

public class FileTestDriver {

	/**
	 * 输入一个路径名，
	 * 遍历该文件下的所有的文件信息（如果是文件，直接输出文件名，如果是文件夹直接输出文件夹下的所有的文件信息）
	 */
	@Test
	public void test03() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个文件名：");
		String strFileName = sc.nextLine();
		// 创建一个文件对象
		File file = new File(strFileName);
		// 判定该文件是否存在，并且不是隐藏文件
		if(file.exists() && !file.isHidden()) {
			// 判定是不是文档文件（判定是不是目录文件）
			if(file.isDirectory()) {
				// 是目录
				File[] subFiles = file.listFiles();
				System.out.println("目录：");
				System.out.println(file.getAbsolutePath());
				
				// 递归调用，打印子文件以及子文件夹下的文件
				for (File file2 : subFiles) {
					System.out.println("    --"+file2.getAbsolutePath());
				}
				
			}else {
				// 是文档文件
				System.out.println(file.getAbsolutePath());
			}
		}else {
			System.out.println("该文件不存在或者是隐藏文件。");
		}
	}
	@Test
	public void test04() {
		// File文件的实例对象
		File file = new  File("D:\\temp\\t1\\t2\\tt01.txt");
		//File file = new File("\"d:\\temp\"");
		System.out.println("AbsolutePath::"+file.getAbsolutePath());
		System.out.println("Path::"+file.getPath());
		System.out.println("exists:"+file.exists());
		if(!file.exists()) {
			// 如果文件不存在则创建该文件
			try {
				file.createNewFile();
			} catch (IOException e) {
				// 可能是目录路径不存在
				// 先创建目录路径
				File parentFile = file.getParentFile();
				if(parentFile != null) {
					// 创建父文件夹目录
					if(parentFile.mkdirs()) {
						// 再次尝试创建失败的文件对象
						try {
							file.createNewFile();
						} catch (IOException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
					}
					
				}
				System.out.println("fff:"+file.getParent());
				System.out.println("fff:"+file.getParentFile().getAbsolutePath());
			}
		}
	}
	@Test
	public void test01() {
		// File文件的实例对象
		File file = new  File("D:\\temp\\tt01.txt");
		//File file = new File("\"d:\\temp\"");
		System.out.println("AbsolutePath::"+file.getAbsolutePath());
		System.out.println("Path::"+file.getPath());
		System.out.println("exists:"+file.exists());
		if(!file.exists()) {
			// 如果文件不存在则创建该文件
			try {
				file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	@Test
	public void test02() {
		// File文件的实例对象
		File file = new  File("temp_tt.txt");
		System.out.println("AbsolutePath::"+file.getAbsolutePath());
		System.out.println("Path::"+file.getPath());
	}
}
